/*
 * Powered By XY
 * Since 2020
 */

package com.xy.biz.uc.client;

import com.xy.biz.uc.domain.req.GetTeamRequest;
import com.xy.biz.uc.domain.req.GetTeamSRequest;
import com.xy.biz.uc.domain.req.ListTeamRequest;
import com.xy.biz.uc.domain.resp.GetTeamResponse;
import com.xy.lang.domain.Result;

import java.util.Collection;
import java.util.List;
import java.util.Set;

/**
 *
 *
 * @author yzh
 * @date 2021-4-26
 */
public interface TeamClient {

    /**
     * 查找一个
     *
     * @param request
     * @return
     */
    Result<GetTeamResponse> getTeam(GetTeamRequest request);

    /**
     * 查找多个
     *
     * @param collection 标识集合
     * @return
     */
    Result<List<GetTeamResponse>> listTeamById(Collection<Long> collection);

//	/**
//	 * 查找多个
//	 *
//	 * @param request 查找条件
//	 * @return
//	 */
//	Result<List<GetTeamResponse>> listTeam(ListTeamRequest request);
//
//	/**
//	 * 统计个数
//	 *
//	 * @param request 查找条件
//	 * @return
//	 */
//	Result<Integer> countTeam(ListTeamRequest request);

    /**
     * 修改接口
     *
     * @return
     */
    Result<List<GetTeamResponse>> listJoinedTeam(ListTeamRequest request);

    /**
     * @author Greekn Zhang
     * @description 判断当前成员是否是团队管理员
     */
    Result<Set<Long>> isTeamAdminS(GetTeamSRequest request);
}
